package com.wudl.jwt.auth.client.utils;

import com.wudl.core.exception.BizException;
import com.wudl.jwt.auth.client.properties.AuthClientProperties;
import com.wudl.jwt.auth.utils.JwtHelper;
import com.wudl.jwt.auth.utils.JwtUserInfo;
import lombok.AllArgsConstructor;

/**
 * @author ：wudl
 * @date ：Created in 2022-02-24 22:39
 * @description：jwtToken 客户端工具类
 * @modified By：
 * @version: 1.0
 */
@AllArgsConstructor
public class JwtTokenClientUtils {
    /**
     * 用于 认证服务的 客户端使用（如 网关） ， 在网关获取到token后，
     * 调用此工具类进行token 解析。
     * 客户端一般只需要解析token 即可
     */
    private AuthClientProperties authClientProperties;

    /**
     * 解析token
     *
     * @param token
     * @return
     * @throws Exception
     */
    public JwtUserInfo getUserInfo(String token) throws BizException {
        AuthClientProperties.TokenInfo userTokenInfo = authClientProperties.getUser();
        return JwtHelper.getJwtFromToken(token, userTokenInfo.getPubKey());
    }
}
